In a typical compute device, any byte-addressable memory (e.g., RAM, non-volatile memory) that is to be used during the execution of an application (e.g., a workload) is local to the processor (e.g., physically installed on the compute device) and it is possible for the memory available to the compute device to fall short of the amount of memory requested by the application during one or more operations. As such, an administrator of the compute device may choose to equip the compute device with a relatively large amount of memory to account for situations in which the application may benefit from the large amount of memory (e.g., for memory intensive operations). However, for a majority of the time, a large part of memory onboard the compute device may go unused. In a data center in which multiple compute devices may be assigned workloads to execute, the costs of equipping the compute devices with relatively large amounts memory can be significant and may be wasteful in view of the amount of memory that is typically used by the workloads. Further, in data centers in which two or more compute devices may operate on a common data set, each compute device typically maintains a local copy of the data set in its onboard memory (e.g., duplicating the data across the local memories of the compute devices), and the compute devices may consume valuable network capacity in sending and receiving updates to the data set to each other (e.g., to update their local copies of the data set).